package com.cskaoyan.javase.oop1._2memory;

/**
 * @description: 对象内存图
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 3个对象的内存图，其中有两个引用指向同一个对象
 *
 * 同一个类的类加载在同一次程序运行过程当中只会有一次，并且类加载是“懒加载”（只有到了不加载不行了才会类加载）
 * 我们把必须要进行类加载的场景称之为“类加载的时机”
 * 类加载的时机有很多种，目前我们学到的有两种：
 *      1，创建对象，new对象必然触发类加载
 *      2，启动某个类的main方法，触发该类类加载
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        Star s1 = new Star();
        Star s2 = s1; //指向同一个Star对象
        System.out.println(s1);
        System.out.println(s2);

        s2.worth = 10000000;
        System.out.println(s1.worth);

        Star s3 = new Star();
    }
}

//明星类
class Star {
    double worth; //身价
    String name;

    public void sing() {
        System.out.println("唱歌");
    }

    public void dance() {
        System.out.println("跳舞");
    }
}